"""
配置模块，用于管理WebSearchResearchAgent的配置参数
"""

# 搜索相关配置
SEARCH_CONFIG = {
    "default_search_engine": "chinanews",  # 默认搜索引擎
    "max_results": 10,  # 最大返回结果数
    "timeout": 30,  # 请求超时时间（秒）
}

# LLM相关配置
LLM_CONFIG = {
    "model": "glm-4-flash",  # 默认模型
    "temperature": 0.7,  # 温度参数
    "max_tokens": 1024,  # 最大生成token数
}

# 流程相关配置
FLOW_CONFIG = {
    "max_search_iterations": 5,  # 最大搜索迭代次数
    "debug_mode": False,  # 调试模式
}

# 日志相关配置
LOG_CONFIG = {
    "level": "INFO",  # 日志级别
    "save_history": True,  # 是否保存历史记录
    "history_path": "./history",  # 历史记录保存路径
}

# UI相关配置
UI_CONFIG = {
    "use_emoji": True,  # 是否使用emoji
    "show_thinking": True,  # 是否显示思考过程
}

def get_config():
    """
    获取完整配置
    
    返回:
        包含所有配置的字典
    """
    return {
        "search": SEARCH_CONFIG,
        "llm": LLM_CONFIG,
        "flow": FLOW_CONFIG,
        "log": LOG_CONFIG,
        "ui": UI_CONFIG,
    }

def update_config(section, key, value):
    """
    更新配置
    
    参数:
        section: 配置区域名称
        key: 配置项名称
        value: 新的配置值
        
    返回:
        更新后的配置
    """
    config_map = {
        "search": SEARCH_CONFIG,
        "llm": LLM_CONFIG,
        "flow": FLOW_CONFIG,
        "log": LOG_CONFIG,
        "ui": UI_CONFIG,
    }
    
    if section not in config_map:
        raise ValueError(f"未知配置区域: {section}")
        
    if key not in config_map[section]:
        raise ValueError(f"未知配置项: {key}")
        
    config_map[section][key] = value
    return get_config() 